import com.google.appengine.api.datastore.*
import static com.google.appengine.api.datastore.FetchOptions.Builder.*
import com.pobos.model.*


try {
	String idConcello = params.id
	def preguntas = obtenPreguntas(idConcello)
	
	if (preguntas) {
		 amosaListaPreguntas(preguntas)
	}
} catch (Exception e) { 
	request.erro = "Erro inesperado procurando as preguntas."
	forward "/erro.gtpl"	
}

def obtenPreguntas(String idConcello) {
	
	def query = new Query("Pregunta")
	query.addSort("dataCreacion", Query.SortDirection.DESCENDING)
	
	if (idConcello) {
		query.addFilter("concello", Query.FilterOperator.EQUAL, idConcello)
	}
	 
	PreparedQuery preparedQuery = datastore.prepare(query)
	 
	// return only the first 20 results
	def entities = preparedQuery.asList( withLimit(20) )
	
	return entities
	
}



def amosaListaPreguntas(def preguntas) {
	
	if (preguntas) {
		html.div(id:"lista-preguntas") {
			
			ol {
			
				preguntas.eachWithIndex {pregunta,i->
					if (pregunta) {
						
						def contido = pregunta.pregunta.value
						contidoResume = contido[0..Math.min(contido.size() -1, 99)]
						                    
						if (contido.size() > 100) {
							contidoResume = contidoResume + "..."
						}
						
						li(class:'elemento') {
							
							a(class:'elemento-link', href:"/pregunta/${pregunta.key?.id}"){
								span (class:'recadro-sumario') {
									span "${pregunta.respostas ? pregunta.respostas.size() : '0'}"
									em "respostas"
								}
								div(class:'elemento-contido'){
									p class:'titulo',"Concello de ${pregunta.nomeConcello}:"
									p "${contidoResume}"
									em "preguntouno ${pregunta.nomePerfil}"
								}
							}
						}
						
					}
				} //fin each
				
			}
		}
	
	}
	
}

